package com.ultrawise.survey.common.utils;

import java.util.regex.Pattern;

public class MathPageno {
	public static int getPage(String start, String limit) {

		if (StringUtils.isEmpty(limit) || !Pattern.matches("[0-9]*", limit)) {
			limit = "10";
		}
		int intlimit = (limit != null && limit.length() > 0) ? Integer
				.parseInt(limit) : 0;
		int intstart = (start != null && start.length() > 0) ? Integer
				.parseInt(start) : 0;

		int pageno = 1;
		if (intlimit > 0)
			pageno = (intstart / intlimit) + 1;

		return pageno;
	}

	public static int getPagesize(String pageSize) {
		int pagesize = 10;
		if (StringUtils.isEmpty(pageSize)
				|| !Pattern.matches("[0-9]*", pageSize)) {
			;
		} else {
			pagesize = Integer.parseInt(pageSize);
		}
		return pagesize;
	}

	/*****
	 * 获取下一个modleno的之信息
	 * 
	 * @param strFirstNo
	 * @param maxmodno
	 * @return
	 */
	private static String getNextId(String strFirstNo, String maxmodno) {
		String strNextModuleNo = "";
		if (strFirstNo.equals("00")) {
			strFirstNo = "";
		}
		if (maxmodno != null && maxmodno.length() > 0) {
			int intMaxID = Integer.parseInt(maxmodno.substring(
					maxmodno.length() - 2, maxmodno.length())) + 1;
			if (intMaxID < 10) {
				strNextModuleNo = strFirstNo + "0" + intMaxID;
			} else {
				strNextModuleNo = strFirstNo + intMaxID;
			}
		} else {
			strNextModuleNo = strFirstNo + "01";
		}
		return strNextModuleNo;
	}

	/****
	 * 树形结构id的获取，标示三位的数字增加
	 * 
	 * @param strFirstNo
	 * @param maxmodno
	 * @return
	 */
	public static String getIdNextIII(String strFirstNo, String maxmodno) {
		return getStrAddone(strFirstNo, maxmodno, 2);
	}

	/****
	 * 树形结构id的获取，标示两位的数字增加
	 * 
	 * @param strFirstNo
	 * @param maxmodno
	 * @return
	 */
	public static String getIdNextII(String strFirstNo, String maxmodno) {
		return getStrAddone(strFirstNo, maxmodno, 1);
	}

	/****
	 * 计算出后面的一个最大值信息
	 * 
	 * @param strFirstNo
	 * @param maxmodno
	 * @return
	 */
	private static String getStrAddone(String strFirstNo, String maxmodno,
			int num) {
		String addstr = "";

		// 当父节点为空的时候直接反馈001数值。
		if (strFirstNo != null && strFirstNo.length() > 0) {
			//当父节点为空，但是子节点并不为空的时候还是要计算出最大+1的数值信息
			if (maxmodno != null && maxmodno.length() > 0 && StringUtils.isNum(maxmodno)) {
				int maxadd1 = Integer.parseInt("1" + maxmodno) + 1;
				addstr = String.valueOf(maxadd1);
				addstr = addstr.substring(1, addstr.length());
				return addstr;
			} else {
				strFirstNo=strFirstNo+ getAddZero(num) + "1";
				return strFirstNo;
			}
		} else {
			if (maxmodno != null && maxmodno.length() > 0 && StringUtils.isNum(maxmodno)) {
				int maxadd1 = Integer.parseInt("1" + maxmodno) + 1;
				addstr = String.valueOf(maxadd1);
				addstr = addstr.substring(1, addstr.length());
				
			} else {
				addstr=strFirstNo+ getAddZero(num) + "1";
				
			}
		}
		return addstr;
	}

	private static String getAddZero(int num) {
		String zero = "";
		for (int i = 0; i < num; i++) {
			zero += "0";
		}
		return zero;
	}

	public static void main(String[] args) {
		System.out.println("max:" + getIdNextIII("024002", "024002002"));
	}
}
